package com.shejimoshi.单例模式.枚举学习.向枚举中添加新方法;

/**
 * 如果打算自定义的方法，那么必须在enum实例序列的最后添加分号。而且java中规定，对于枚举类必须先定义实例
 */
public enum Color {
    READ("红色",1),
    BLACK("黑色",2),
    YELLOW("黄色",3),
    GREEN("绿色",4),
    TEST("TEST", 5) {
        @Override
        public String getName() {
            return super.getName();
        }
    };

    // 成员变量
    private String name;

    private int index;

    // 定义有参构造方法--private
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 普通方法：如果不是私有的， 那么这个构造函数就会被实例继承
    public static String getName(int index) {
        for(Color color: Color.values()) {
            if(index == color.index) {
                return color.name;
            }
        }

        return null;
    }

    @Override
    public String toString() {
        return "Color{" +
                "name='" + name + '\'' +
                ", index=" + index +
                '}';
    }

    // get set方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }
}
